// search 模块小仓库
// 引入 搜索接口
import { reqGetSearchInfo } from '@/api'
const state = {
  // 搜索接口数据为对象形式
  searchList: {}
}
// mutations:唯一可以改变state数据地方
const mutations = {
  SEARCHLIST (state, searchList) {
    state.searchList = searchList
  }
}
const actions = {
  // 获取搜索模块的内容
  async getSearchList ({ commit }, params = {}) {
    // reqGetSearchInfo 在调用服务器数据的时候，至少传递一个参数，至少是一个参数（空对象）
    // params 行参 是用户在派发 actions 的时候，第二个参数传递进来的，至少是一个空对象
    const result = await reqGetSearchInfo(params)
    if (result.code === 200) {
      commit('SEARCHLIST', result.data)
      console.log(result)
    }
  }
}
// 计算属性，为了简化数据而生
const getters = {
  // 形参的 state 是 search 仓库中的数据，不是大仓库中的数据
  // 简化数据操作
  // 当服务器卡顿或网速慢时，数据尚未回来就 v-for ，至少给一个空数组
  goodsList (state) {
    return state.searchList.goodsList || []
  },
  trademarkList (state) {
    return state.searchList.trademarkList || []
  },
  attrsList (state) {
    return state.searchList.attrsList || []
  }
}

// 对外暴露
export default {
  state,
  mutations,
  actions,
  getters
}
